package com.talent.loginmapper;

import com.talent.entities.dto.Admin;
import com.talent.entities.dto.User;
import com.talent.entities.vo.LoginUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * @author 周意朗
 * Date: 2022/3/20
 * @since JDK 11
 */
@Mapper
public interface LoginMapper {
    /**
     * 根据前端传入的LoginUser查询数据库
     *
     * @param user loginuser
     * @return 查询到的user, 或者null
     */
    User loginMethod(LoginUser user);

    /**
     * admin 的登录
     *
     * @param admin 传入的admin参数
     * @return 查找到的admin
     */
    Admin loginMethodAdmin(Admin admin);

    /**
     * 修改用户信息
     *
     * @param user 需要修改的信息
     * @return 修改后的信息
     */
    Boolean updateUser(@Param("tel") String tel, @Param("email") String email, @Param("areaid") int areaid);

    User afterUpdateUser(@Param("tel") String tel);

    /**
     * 修改用户密码
     *
     * @param tel 电话
     * @param pwd 密码
     * @return
     */
    Boolean updateUserPassword(@Param("tel") String tel, @Param("pwd") String pwd, @Param("id") String id);

    /**
     * 根据用户tel查询id
     *
     * @param tel 用户电话
     * @return 用户id
     */
    String updateUserPasswordHelper(@Param("tel") String tel);

    /**
     * 用户注册
     *
     * @param user 用户
     * @return 是否成功
     */
    Boolean registUser(@Param("user") User user);

    /**
     * 通过用户身份证创建对应的订单映射表
     *
     * @param id
     * @return 是否成功
     */
    Boolean registUserCreateUserOrderMapping(@Param("id") String id);
    /**
     * 通过用户身份证删除对应的订单映射表
     *
     * @param id
     * @return 是否成功
     */
    Boolean registUserDropUserOrderMapping(@Param("id") String id);

    /**
     * 注册前检查id是否存在
     *
     * @param id
     * @return
     */
    Integer beforeRegistID(@Param("id") String id);

    /**
     * 注册前检查tel是否存在
     *
     * @param tel
     * @return
     */
    Integer beforeRegistTel(@Param("tel") String tel);

}
